mutual exclusion and synchronization in operating system